package Entidades;

import Nivel.Tablero;

public class Gravedad implements Runnable {
	
	protected ElementoJuego afectada;
	protected Tablero nivel;
	protected boolean finJuego;

	public Gravedad(ElementoJuego afectada, Tablero nivel) {
		this.afectada = afectada;
		this.nivel = nivel;
		this.finJuego = false;
	}

	public void run() {
		while(!finJuego) {
			if(estaEnElAire())
				caer();
		}
		
	}
	
	private void caer() {
		int posy = afectada.getPos().getY();
		afectada.getPos().setY(posy-1);
		try {
			Thread.sleep(3);
		} 
		catch (InterruptedException e) {
		}
	}
	
	public boolean estaEnElAire(){
		boolean estaEnElAire = false;
		ElementoJuego elementoInferior;
		if ( afectada.getPos().getY() > 0 ){
			elementoInferior = nivel.get(afectada.getPos().getX(),afectada.getPos().getY()-1);
			
			if ( elementoInferior.esTransitable() ){
				estaEnElAire = true;
			}
		}
		else
			finJuego = true;
		
		return estaEnElAire;
	}
}